from hashlib import md5


'''
md5 可以替换为 ：sha1、sha256、sha512
md5:    16 bit   32 length charater
sha1:   20 bit   40 length charater
sha256: 32 bit   64 length charater
sha512: 64 bit   128 length charater
'''

# decode_string = '123456'
decode_string = 'client=fanyideskweb&mysticTime=1751889610291&product=webfanyi&key=yU5nT5dK3eZ1pI4j'

md5_obj = md5()
md5_obj.update(decode_string.encode(encoding='utf-8'))   # encode，将字符串转为2进制（bytes）

# md5_obj.update('123'.encode(encoding='utf-8'))
# md5_obj.update('456'.encode(encoding='utf-8'))   这两句代码与上面的加密代码是等价的（加密结果相同）


# digest()得到一个16位的2进制结果，hexdigest()得到一个32位的16进制结果
encode_string16 = md5_obj.hexdigest()
encode_string2 = md5_obj.digest()
print(encode_string16, len(encode_string16))  # print e10adc3949ba59abbe56e057f20f883e 32
print(encode_string2, len(encode_string2))   # print: b'\xe1\n\xdc9I\xbaY\xab\xbeV\xe0W\xf2\x0f\x88>' 16